#include <iostream>
using namespace std;
#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<fcntl.h>
#include<sys/stat.h>

//我没有指定路径，会默认在当前路径下创建文件
#define FILE_NAME "log.txt"

int main(){ 
    //系统调用接口的文件操作
    umask(0);
    int fd = open(FILE_NAME,O_RDONLY);
    if(fd < 0){
        //打开失败会返回-1
        perror("open");
        return 1;
    }
    //开始读数据
    char buffer[1024];
    ssize_t num = read(fd,buffer,sizeof(buffer)-1);
    if(num > 0) buffer[num] = 0;
    printf("%s",buffer);



    //开始写数据
    // int cnt = 5;
    // char outbuffer[64];//自己手动创建一个缓冲区
    // while(cnt){
    //     sprintf(outbuffer,"%s:%d\n","aaaa",cnt--);
    //     write(fd,outbuffer,strlen(outbuffer));
    // }

    close(fd);














    //r,w,r+(读写，不存在则出错)，w+(读写，不存在创建)，a(追加)
    // FILE* fp = fopen(FILE_NAME,"r");
    // if(fp == nullptr){
    //     perror("fopen\n");
    //     return 1;
    // }
    // //测试读数据
    // char buffer[64];
    // while(fgets(buffer,sizeof(buffer)-1,fp) != nullptr){
    //     buffer[strlen(buffer)-1] = 0;//去掉我们手动输入的换行符
    //     //puts(buffer);//输出到显示器
    //     printf("%s\n",buffer);
    // }


    //开始写数据
    // int cnt = 5;
    // while(cnt){
    //     //向io流中进行格式化输出
    //     fprintf(fp,"%s:%d\n","hello linux",cnt--);
    // }



    //fclose(fp);

    return 0;
}
